// Generated from ./TodoLangGrammar.g4 by ANTLR 4.9.0-SNAPSHOT


import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener";

import { SimpleJoinContext } from "./TodoLangGrammarParser";
import { SingleParenJoinContext } from "./TodoLangGrammarParser";
import { ParenJoinContext } from "./TodoLangGrammarParser";
import { SimpleDataContext } from "./TodoLangGrammarParser";
import { SingleCellContext } from "./TodoLangGrammarParser";
import { WholeCellContext } from "./TodoLangGrammarParser";
import { CellPairContext } from "./TodoLangGrammarParser";
import { SingleCellConditionContext } from "./TodoLangGrammarParser";
import { SingleCellCoordinateContext } from "./TodoLangGrammarParser";
import { CellCoordinateConditionContext } from "./TodoLangGrammarParser";
import { RangeContext } from "./TodoLangGrammarParser";
import { SingleExprCompositeContext } from "./TodoLangGrammarParser";
import { TernaryExprCompositeContext } from "./TodoLangGrammarParser";
import { ParenExprCompositeContext } from "./TodoLangGrammarParser";
import { ComplexExprCompositeContext } from "./TodoLangGrammarParser";
import { CellNameExprConditionContext } from "./TodoLangGrammarParser";
import { PropertyConditionContext } from "./TodoLangGrammarParser";
import { CurrentValueConditionContext } from "./TodoLangGrammarParser";
import { ExprConditionContext } from "./TodoLangGrammarParser";
import { RelativeContext } from "./TodoLangGrammarParser";
import { AbsoluteContext } from "./TodoLangGrammarParser";
import { EntryContext } from "./TodoLangGrammarParser";
import { ExpressionContext } from "./TodoLangGrammarParser";
import { ExprCompositeContext } from "./TodoLangGrammarParser";
import { TernaryExprContext } from "./TodoLangGrammarParser";
import { CaseExprContext } from "./TodoLangGrammarParser";
import { CasePartContext } from "./TodoLangGrammarParser";
import { IfExprContext } from "./TodoLangGrammarParser";
import { IfPartContext } from "./TodoLangGrammarParser";
import { ElseIfPartContext } from "./TodoLangGrammarParser";
import { ElsePartContext } from "./TodoLangGrammarParser";
import { BlockContext } from "./TodoLangGrammarParser";
import { ExprBlockContext } from "./TodoLangGrammarParser";
import { ReturnExprContext } from "./TodoLangGrammarParser";
import { ExprContext } from "./TodoLangGrammarParser";
import { IfConditionContext } from "./TodoLangGrammarParser";
import { VariableAssignContext } from "./TodoLangGrammarParser";
import { ItemContext } from "./TodoLangGrammarParser";
import { UnitContext } from "./TodoLangGrammarParser";
import { VariableContext } from "./TodoLangGrammarParser";
import { CellPositionContext } from "./TodoLangGrammarParser";
import { RelativeCellContext } from "./TodoLangGrammarParser";
import { CurrentCellValueContext } from "./TodoLangGrammarParser";
import { CurrentCellDataContext } from "./TodoLangGrammarParser";
import { CellContext } from "./TodoLangGrammarParser";
import { DatasetContext } from "./TodoLangGrammarParser";
import { DatasetColumnContext } from "./TodoLangGrammarParser";
import { FunctionContext } from "./TodoLangGrammarParser";
import { FunctionParameterContext } from "./TodoLangGrammarParser";
import { SetContext } from "./TodoLangGrammarParser";
import { CellCoordinateContext } from "./TodoLangGrammarParser";
import { CoordinateLeftContext } from "./TodoLangGrammarParser";
import { CoordinateTopContext } from "./TodoLangGrammarParser";
import { CoordinateContext } from "./TodoLangGrammarParser";
import { CellIndicatorContext } from "./TodoLangGrammarParser";
import { ConditionsContext } from "./TodoLangGrammarParser";
import { ConditionContext } from "./TodoLangGrammarParser";
import { PropertyContext } from "./TodoLangGrammarParser";
import { CurrentValueContext } from "./TodoLangGrammarParser";
import { SimpleValueContext } from "./TodoLangGrammarParser";
import { JoinContext } from "./TodoLangGrammarParser";
import { AggregateContext } from "./TodoLangGrammarParser";


/**
 * This interface defines a complete listener for a parse tree produced by
 * `TodoLangGrammarParser`.
 */
export interface TodoLangGrammarListener extends ParseTreeListener {
	/**
	 * Enter a parse tree produced by the `simpleJoin`
	 * labeled alternative in `TodoLangGrammarParser.item`.
	 * @param ctx the parse tree
	 */
	enterSimpleJoin?: (ctx: SimpleJoinContext) => void;
	/**
	 * Exit a parse tree produced by the `simpleJoin`
	 * labeled alternative in `TodoLangGrammarParser.item`.
	 * @param ctx the parse tree
	 */
	exitSimpleJoin?: (ctx: SimpleJoinContext) => void;

	/**
	 * Enter a parse tree produced by the `singleParenJoin`
	 * labeled alternative in `TodoLangGrammarParser.item`.
	 * @param ctx the parse tree
	 */
	enterSingleParenJoin?: (ctx: SingleParenJoinContext) => void;
	/**
	 * Exit a parse tree produced by the `singleParenJoin`
	 * labeled alternative in `TodoLangGrammarParser.item`.
	 * @param ctx the parse tree
	 */
	exitSingleParenJoin?: (ctx: SingleParenJoinContext) => void;

	/**
	 * Enter a parse tree produced by the `parenJoin`
	 * labeled alternative in `TodoLangGrammarParser.item`.
	 * @param ctx the parse tree
	 */
	enterParenJoin?: (ctx: ParenJoinContext) => void;
	/**
	 * Exit a parse tree produced by the `parenJoin`
	 * labeled alternative in `TodoLangGrammarParser.item`.
	 * @param ctx the parse tree
	 */
	exitParenJoin?: (ctx: ParenJoinContext) => void;

	/**
	 * Enter a parse tree produced by the `simpleData`
	 * labeled alternative in `TodoLangGrammarParser.set`.
	 * @param ctx the parse tree
	 */
	enterSimpleData?: (ctx: SimpleDataContext) => void;
	/**
	 * Exit a parse tree produced by the `simpleData`
	 * labeled alternative in `TodoLangGrammarParser.set`.
	 * @param ctx the parse tree
	 */
	exitSimpleData?: (ctx: SimpleDataContext) => void;

	/**
	 * Enter a parse tree produced by the `singleCell`
	 * labeled alternative in `TodoLangGrammarParser.set`.
	 * @param ctx the parse tree
	 */
	enterSingleCell?: (ctx: SingleCellContext) => void;
	/**
	 * Exit a parse tree produced by the `singleCell`
	 * labeled alternative in `TodoLangGrammarParser.set`.
	 * @param ctx the parse tree
	 */
	exitSingleCell?: (ctx: SingleCellContext) => void;

	/**
	 * Enter a parse tree produced by the `wholeCell`
	 * labeled alternative in `TodoLangGrammarParser.set`.
	 * @param ctx the parse tree
	 */
	enterWholeCell?: (ctx: WholeCellContext) => void;
	/**
	 * Exit a parse tree produced by the `wholeCell`
	 * labeled alternative in `TodoLangGrammarParser.set`.
	 * @param ctx the parse tree
	 */
	exitWholeCell?: (ctx: WholeCellContext) => void;

	/**
	 * Enter a parse tree produced by the `cellPair`
	 * labeled alternative in `TodoLangGrammarParser.set`.
	 * @param ctx the parse tree
	 */
	enterCellPair?: (ctx: CellPairContext) => void;
	/**
	 * Exit a parse tree produced by the `cellPair`
	 * labeled alternative in `TodoLangGrammarParser.set`.
	 * @param ctx the parse tree
	 */
	exitCellPair?: (ctx: CellPairContext) => void;

	/**
	 * Enter a parse tree produced by the `singleCellCondition`
	 * labeled alternative in `TodoLangGrammarParser.set`.
	 * @param ctx the parse tree
	 */
	enterSingleCellCondition?: (ctx: SingleCellConditionContext) => void;
	/**
	 * Exit a parse tree produced by the `singleCellCondition`
	 * labeled alternative in `TodoLangGrammarParser.set`.
	 * @param ctx the parse tree
	 */
	exitSingleCellCondition?: (ctx: SingleCellConditionContext) => void;

	/**
	 * Enter a parse tree produced by the `singleCellCoordinate`
	 * labeled alternative in `TodoLangGrammarParser.set`.
	 * @param ctx the parse tree
	 */
	enterSingleCellCoordinate?: (ctx: SingleCellCoordinateContext) => void;
	/**
	 * Exit a parse tree produced by the `singleCellCoordinate`
	 * labeled alternative in `TodoLangGrammarParser.set`.
	 * @param ctx the parse tree
	 */
	exitSingleCellCoordinate?: (ctx: SingleCellCoordinateContext) => void;

	/**
	 * Enter a parse tree produced by the `cellCoordinateCondition`
	 * labeled alternative in `TodoLangGrammarParser.set`.
	 * @param ctx the parse tree
	 */
	enterCellCoordinateCondition?: (ctx: CellCoordinateConditionContext) => void;
	/**
	 * Exit a parse tree produced by the `cellCoordinateCondition`
	 * labeled alternative in `TodoLangGrammarParser.set`.
	 * @param ctx the parse tree
	 */
	exitCellCoordinateCondition?: (ctx: CellCoordinateConditionContext) => void;

	/**
	 * Enter a parse tree produced by the `range`
	 * labeled alternative in `TodoLangGrammarParser.set`.
	 * @param ctx the parse tree
	 */
	enterRange?: (ctx: RangeContext) => void;
	/**
	 * Exit a parse tree produced by the `range`
	 * labeled alternative in `TodoLangGrammarParser.set`.
	 * @param ctx the parse tree
	 */
	exitRange?: (ctx: RangeContext) => void;

	/**
	 * Enter a parse tree produced by the `singleExprComposite`
	 * labeled alternative in `TodoLangGrammarParser.exprComposite`.
	 * @param ctx the parse tree
	 */
	enterSingleExprComposite?: (ctx: SingleExprCompositeContext) => void;
	/**
	 * Exit a parse tree produced by the `singleExprComposite`
	 * labeled alternative in `TodoLangGrammarParser.exprComposite`.
	 * @param ctx the parse tree
	 */
	exitSingleExprComposite?: (ctx: SingleExprCompositeContext) => void;

	/**
	 * Enter a parse tree produced by the `ternaryExprComposite`
	 * labeled alternative in `TodoLangGrammarParser.exprComposite`.
	 * @param ctx the parse tree
	 */
	enterTernaryExprComposite?: (ctx: TernaryExprCompositeContext) => void;
	/**
	 * Exit a parse tree produced by the `ternaryExprComposite`
	 * labeled alternative in `TodoLangGrammarParser.exprComposite`.
	 * @param ctx the parse tree
	 */
	exitTernaryExprComposite?: (ctx: TernaryExprCompositeContext) => void;

	/**
	 * Enter a parse tree produced by the `parenExprComposite`
	 * labeled alternative in `TodoLangGrammarParser.exprComposite`.
	 * @param ctx the parse tree
	 */
	enterParenExprComposite?: (ctx: ParenExprCompositeContext) => void;
	/**
	 * Exit a parse tree produced by the `parenExprComposite`
	 * labeled alternative in `TodoLangGrammarParser.exprComposite`.
	 * @param ctx the parse tree
	 */
	exitParenExprComposite?: (ctx: ParenExprCompositeContext) => void;

	/**
	 * Enter a parse tree produced by the `complexExprComposite`
	 * labeled alternative in `TodoLangGrammarParser.exprComposite`.
	 * @param ctx the parse tree
	 */
	enterComplexExprComposite?: (ctx: ComplexExprCompositeContext) => void;
	/**
	 * Exit a parse tree produced by the `complexExprComposite`
	 * labeled alternative in `TodoLangGrammarParser.exprComposite`.
	 * @param ctx the parse tree
	 */
	exitComplexExprComposite?: (ctx: ComplexExprCompositeContext) => void;

	/**
	 * Enter a parse tree produced by the `cellNameExprCondition`
	 * labeled alternative in `TodoLangGrammarParser.condition`.
	 * @param ctx the parse tree
	 */
	enterCellNameExprCondition?: (ctx: CellNameExprConditionContext) => void;
	/**
	 * Exit a parse tree produced by the `cellNameExprCondition`
	 * labeled alternative in `TodoLangGrammarParser.condition`.
	 * @param ctx the parse tree
	 */
	exitCellNameExprCondition?: (ctx: CellNameExprConditionContext) => void;

	/**
	 * Enter a parse tree produced by the `propertyCondition`
	 * labeled alternative in `TodoLangGrammarParser.condition`.
	 * @param ctx the parse tree
	 */
	enterPropertyCondition?: (ctx: PropertyConditionContext) => void;
	/**
	 * Exit a parse tree produced by the `propertyCondition`
	 * labeled alternative in `TodoLangGrammarParser.condition`.
	 * @param ctx the parse tree
	 */
	exitPropertyCondition?: (ctx: PropertyConditionContext) => void;

	/**
	 * Enter a parse tree produced by the `currentValueCondition`
	 * labeled alternative in `TodoLangGrammarParser.condition`.
	 * @param ctx the parse tree
	 */
	enterCurrentValueCondition?: (ctx: CurrentValueConditionContext) => void;
	/**
	 * Exit a parse tree produced by the `currentValueCondition`
	 * labeled alternative in `TodoLangGrammarParser.condition`.
	 * @param ctx the parse tree
	 */
	exitCurrentValueCondition?: (ctx: CurrentValueConditionContext) => void;

	/**
	 * Enter a parse tree produced by the `exprCondition`
	 * labeled alternative in `TodoLangGrammarParser.condition`.
	 * @param ctx the parse tree
	 */
	enterExprCondition?: (ctx: ExprConditionContext) => void;
	/**
	 * Exit a parse tree produced by the `exprCondition`
	 * labeled alternative in `TodoLangGrammarParser.condition`.
	 * @param ctx the parse tree
	 */
	exitExprCondition?: (ctx: ExprConditionContext) => void;

	/**
	 * Enter a parse tree produced by the `relative`
	 * labeled alternative in `TodoLangGrammarParser.cellIndicator`.
	 * @param ctx the parse tree
	 */
	enterRelative?: (ctx: RelativeContext) => void;
	/**
	 * Exit a parse tree produced by the `relative`
	 * labeled alternative in `TodoLangGrammarParser.cellIndicator`.
	 * @param ctx the parse tree
	 */
	exitRelative?: (ctx: RelativeContext) => void;

	/**
	 * Enter a parse tree produced by the `absolute`
	 * labeled alternative in `TodoLangGrammarParser.cellIndicator`.
	 * @param ctx the parse tree
	 */
	enterAbsolute?: (ctx: AbsoluteContext) => void;
	/**
	 * Exit a parse tree produced by the `absolute`
	 * labeled alternative in `TodoLangGrammarParser.cellIndicator`.
	 * @param ctx the parse tree
	 */
	exitAbsolute?: (ctx: AbsoluteContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.entry`.
	 * @param ctx the parse tree
	 */
	enterEntry?: (ctx: EntryContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.entry`.
	 * @param ctx the parse tree
	 */
	exitEntry?: (ctx: EntryContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.expression`.
	 * @param ctx the parse tree
	 */
	enterExpression?: (ctx: ExpressionContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.expression`.
	 * @param ctx the parse tree
	 */
	exitExpression?: (ctx: ExpressionContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.exprComposite`.
	 * @param ctx the parse tree
	 */
	enterExprComposite?: (ctx: ExprCompositeContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.exprComposite`.
	 * @param ctx the parse tree
	 */
	exitExprComposite?: (ctx: ExprCompositeContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.ternaryExpr`.
	 * @param ctx the parse tree
	 */
	enterTernaryExpr?: (ctx: TernaryExprContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.ternaryExpr`.
	 * @param ctx the parse tree
	 */
	exitTernaryExpr?: (ctx: TernaryExprContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.caseExpr`.
	 * @param ctx the parse tree
	 */
	enterCaseExpr?: (ctx: CaseExprContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.caseExpr`.
	 * @param ctx the parse tree
	 */
	exitCaseExpr?: (ctx: CaseExprContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.casePart`.
	 * @param ctx the parse tree
	 */
	enterCasePart?: (ctx: CasePartContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.casePart`.
	 * @param ctx the parse tree
	 */
	exitCasePart?: (ctx: CasePartContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.ifExpr`.
	 * @param ctx the parse tree
	 */
	enterIfExpr?: (ctx: IfExprContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.ifExpr`.
	 * @param ctx the parse tree
	 */
	exitIfExpr?: (ctx: IfExprContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.ifPart`.
	 * @param ctx the parse tree
	 */
	enterIfPart?: (ctx: IfPartContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.ifPart`.
	 * @param ctx the parse tree
	 */
	exitIfPart?: (ctx: IfPartContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.elseIfPart`.
	 * @param ctx the parse tree
	 */
	enterElseIfPart?: (ctx: ElseIfPartContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.elseIfPart`.
	 * @param ctx the parse tree
	 */
	exitElseIfPart?: (ctx: ElseIfPartContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.elsePart`.
	 * @param ctx the parse tree
	 */
	enterElsePart?: (ctx: ElsePartContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.elsePart`.
	 * @param ctx the parse tree
	 */
	exitElsePart?: (ctx: ElsePartContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.block`.
	 * @param ctx the parse tree
	 */
	enterBlock?: (ctx: BlockContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.block`.
	 * @param ctx the parse tree
	 */
	exitBlock?: (ctx: BlockContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.exprBlock`.
	 * @param ctx the parse tree
	 */
	enterExprBlock?: (ctx: ExprBlockContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.exprBlock`.
	 * @param ctx the parse tree
	 */
	exitExprBlock?: (ctx: ExprBlockContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.returnExpr`.
	 * @param ctx the parse tree
	 */
	enterReturnExpr?: (ctx: ReturnExprContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.returnExpr`.
	 * @param ctx the parse tree
	 */
	exitReturnExpr?: (ctx: ReturnExprContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.expr`.
	 * @param ctx the parse tree
	 */
	enterExpr?: (ctx: ExprContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.expr`.
	 * @param ctx the parse tree
	 */
	exitExpr?: (ctx: ExprContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.ifCondition`.
	 * @param ctx the parse tree
	 */
	enterIfCondition?: (ctx: IfConditionContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.ifCondition`.
	 * @param ctx the parse tree
	 */
	exitIfCondition?: (ctx: IfConditionContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.variableAssign`.
	 * @param ctx the parse tree
	 */
	enterVariableAssign?: (ctx: VariableAssignContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.variableAssign`.
	 * @param ctx the parse tree
	 */
	exitVariableAssign?: (ctx: VariableAssignContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.item`.
	 * @param ctx the parse tree
	 */
	enterItem?: (ctx: ItemContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.item`.
	 * @param ctx the parse tree
	 */
	exitItem?: (ctx: ItemContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.unit`.
	 * @param ctx the parse tree
	 */
	enterUnit?: (ctx: UnitContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.unit`.
	 * @param ctx the parse tree
	 */
	exitUnit?: (ctx: UnitContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.variable`.
	 * @param ctx the parse tree
	 */
	enterVariable?: (ctx: VariableContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.variable`.
	 * @param ctx the parse tree
	 */
	exitVariable?: (ctx: VariableContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.cellPosition`.
	 * @param ctx the parse tree
	 */
	enterCellPosition?: (ctx: CellPositionContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.cellPosition`.
	 * @param ctx the parse tree
	 */
	exitCellPosition?: (ctx: CellPositionContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.relativeCell`.
	 * @param ctx the parse tree
	 */
	enterRelativeCell?: (ctx: RelativeCellContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.relativeCell`.
	 * @param ctx the parse tree
	 */
	exitRelativeCell?: (ctx: RelativeCellContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.currentCellValue`.
	 * @param ctx the parse tree
	 */
	enterCurrentCellValue?: (ctx: CurrentCellValueContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.currentCellValue`.
	 * @param ctx the parse tree
	 */
	exitCurrentCellValue?: (ctx: CurrentCellValueContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.currentCellData`.
	 * @param ctx the parse tree
	 */
	enterCurrentCellData?: (ctx: CurrentCellDataContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.currentCellData`.
	 * @param ctx the parse tree
	 */
	exitCurrentCellData?: (ctx: CurrentCellDataContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.cell`.
	 * @param ctx the parse tree
	 */
	enterCell?: (ctx: CellContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.cell`.
	 * @param ctx the parse tree
	 */
	exitCell?: (ctx: CellContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.dataset`.
	 * @param ctx the parse tree
	 */
	enterDataset?: (ctx: DatasetContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.dataset`.
	 * @param ctx the parse tree
	 */
	exitDataset?: (ctx: DatasetContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.datasetColumn`.
	 * @param ctx the parse tree
	 */
	enterDatasetColumn?: (ctx: DatasetColumnContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.datasetColumn`.
	 * @param ctx the parse tree
	 */
	exitDatasetColumn?: (ctx: DatasetColumnContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.function`.
	 * @param ctx the parse tree
	 */
	enterFunction?: (ctx: FunctionContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.function`.
	 * @param ctx the parse tree
	 */
	exitFunction?: (ctx: FunctionContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.functionParameter`.
	 * @param ctx the parse tree
	 */
	enterFunctionParameter?: (ctx: FunctionParameterContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.functionParameter`.
	 * @param ctx the parse tree
	 */
	exitFunctionParameter?: (ctx: FunctionParameterContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.set`.
	 * @param ctx the parse tree
	 */
	enterSet?: (ctx: SetContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.set`.
	 * @param ctx the parse tree
	 */
	exitSet?: (ctx: SetContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.cellCoordinate`.
	 * @param ctx the parse tree
	 */
	enterCellCoordinate?: (ctx: CellCoordinateContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.cellCoordinate`.
	 * @param ctx the parse tree
	 */
	exitCellCoordinate?: (ctx: CellCoordinateContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.coordinateLeft`.
	 * @param ctx the parse tree
	 */
	enterCoordinateLeft?: (ctx: CoordinateLeftContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.coordinateLeft`.
	 * @param ctx the parse tree
	 */
	exitCoordinateLeft?: (ctx: CoordinateLeftContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.coordinateTop`.
	 * @param ctx the parse tree
	 */
	enterCoordinateTop?: (ctx: CoordinateTopContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.coordinateTop`.
	 * @param ctx the parse tree
	 */
	exitCoordinateTop?: (ctx: CoordinateTopContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.coordinate`.
	 * @param ctx the parse tree
	 */
	enterCoordinate?: (ctx: CoordinateContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.coordinate`.
	 * @param ctx the parse tree
	 */
	exitCoordinate?: (ctx: CoordinateContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.cellIndicator`.
	 * @param ctx the parse tree
	 */
	enterCellIndicator?: (ctx: CellIndicatorContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.cellIndicator`.
	 * @param ctx the parse tree
	 */
	exitCellIndicator?: (ctx: CellIndicatorContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.conditions`.
	 * @param ctx the parse tree
	 */
	enterConditions?: (ctx: ConditionsContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.conditions`.
	 * @param ctx the parse tree
	 */
	exitConditions?: (ctx: ConditionsContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.condition`.
	 * @param ctx the parse tree
	 */
	enterCondition?: (ctx: ConditionContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.condition`.
	 * @param ctx the parse tree
	 */
	exitCondition?: (ctx: ConditionContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.property`.
	 * @param ctx the parse tree
	 */
	enterProperty?: (ctx: PropertyContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.property`.
	 * @param ctx the parse tree
	 */
	exitProperty?: (ctx: PropertyContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.currentValue`.
	 * @param ctx the parse tree
	 */
	enterCurrentValue?: (ctx: CurrentValueContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.currentValue`.
	 * @param ctx the parse tree
	 */
	exitCurrentValue?: (ctx: CurrentValueContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.simpleValue`.
	 * @param ctx the parse tree
	 */
	enterSimpleValue?: (ctx: SimpleValueContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.simpleValue`.
	 * @param ctx the parse tree
	 */
	exitSimpleValue?: (ctx: SimpleValueContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.join`.
	 * @param ctx the parse tree
	 */
	enterJoin?: (ctx: JoinContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.join`.
	 * @param ctx the parse tree
	 */
	exitJoin?: (ctx: JoinContext) => void;

	/**
	 * Enter a parse tree produced by `TodoLangGrammarParser.aggregate`.
	 * @param ctx the parse tree
	 */
	enterAggregate?: (ctx: AggregateContext) => void;
	/**
	 * Exit a parse tree produced by `TodoLangGrammarParser.aggregate`.
	 * @param ctx the parse tree
	 */
	exitAggregate?: (ctx: AggregateContext) => void;
}

